console.log(new String('hello') instanceof String);// 这个是对象，所以可以用instanceof来判断
console.log('hello' instanceof String);// 这是个原始类型的字面量，并不是对象，而instanceof的原理是根据原型链来判断，所以不能用来判断原始类型








//下面是包装类
// let num = 123 // let num = new Number(123)。new Number() 这种类型叫做包装类

// 下面的注释都是v8执行的过程
// num.a = 1 // 真的往 num 上添加了 key 为 a，值为 1
// 不对！用户想要的是字面量，必须满足用户要求 
// 所以 delete num.a 删除 num 上的 a 属性

// console.log(num.a); //相当于访问对象（num包装类）身上不存在的属性a
// 输出undefined为什么不报错 
// 访问对象身上不存在的属性是不会报错的，没有赋值相当于加进去了还会移除
// console.log(num); // [[primitiveValue]]


// let str = 'hello' // let str = new String('hello')
// console.log(str.length);// 读取的是包装类身上的length属性


// let ss = new String('hello')// 这是主动创建对象，不会用包装类的规矩
// ss.len = 2// 相当于往ss对象身上添加了len属性
// console.log(ss.len);//输出2，因为上面是本身就创建了对象，所以对象上可以挂len，不会删除len



